home *** CD-ROM | disk | FTP | other *** search
/ By Popular Request 2.0 / By Popular Request 2.0 (Arsenal Computer).ISO / amiga_5 / sktopten.lha / DLTOP10 / TOP10.REX < prev   
OS/2 REXX Batch file  |  1994-07-25  |  6KB  |  243 lines

  1. /****************************************************************************/
  2. /*                                                                          */
  3. /*            $VER: Top10_SkBungay 2.0 (22.08.93)                           */
  4. /*                                                                          */
  5. /* The Skyline David Letterman's Top 10 lists!   Version 1.0 - Dave Cole    */
  6. /* For updates/questions/whatever call Wolverine's Den (616)533-6760        */
  7. /* Read the dox for installation, etc...                                    */
  8. /* Edit lines 23, 24, 25, and 26 with correct information dude!             */
  9. /*                                                                          */
  10. /*        Skyline 1.3x/2.0 (beta) (89-91)   DLG (92)  HOTKEY (93)           */
  11. /*                  - Modifications By Santosh Bungay                       */
  12. /*                                                                          */
  13. /* DLG implementation:    rx top10.rexx %ansi %sclength                     */
  14. /*                                                                          */
  15. /*                        CLI MODE = No                                     */
  16. /*                                                                          */
  17. /*      Modify Line 37 ONLY                                                 */
  18. /*                                                                          */
  19. /****************************************************************************/
  20.  
  21. OPTIONS RESULTS
  22.  
  23. arg first
  24. parse var first  ansi' 'sclength
  25.  
  26. signal on syntax
  27. signal on IOERR
  28.  
  29. call close(stdin)
  30. call close(stdout)
  31. call close(stderr)
  32.  
  33. call open(stdin,"*","r")
  34. call open(stdout,"*","w")
  35. call open(stderr,"*","w")
  36.  
  37. filepath = "DOORS:DLTOP10/Top10Lists/"   /* THE ONLY SYSOP DEFINABLE VARIABLE */
  38.  
  39. cls    = '0c'x
  40. esc    = '1b'x
  41.  
  42. if upper(ansi) = 'COLOR' then do
  43.     RED    = esc'[1;31m'
  44.     YEL    = esc'[1;33m'
  45.     CYA    = esc'[1;36m'
  46.     WHI    = esc'[1;37m'
  47.     RRED   = esc'[1;44;33m'
  48.     RESET  = esc'[0;37m'
  49. end
  50. else do
  51.     RED   = ''
  52.     YEL   = ''
  53.     CYA   = ''
  54.     WHI   = ''
  55.     RRED  = ''
  56.     RESET = ''
  57. end
  58.  
  59. SELECTLIST:
  60.  
  61. rannum = Vrnd(1,4)
  62. call Open(file,filepath'List'||rannum,'R')
  63. call GUESS
  64. call close(file)
  65. call SHOWIT
  66. signal DIE
  67.  
  68.  
  69. GUESS:
  70.  
  71. do i = 1 to 40
  72.    z.i = readln(file)
  73. end
  74. rannum = Vrnd(1,40)
  75. Tonight = z.rannum
  76. parse var Tonight Subject '|' top.10 '|' top.9 '|' top.8 '|' top.7 '|' top.6 '|' top.5 '|' top.4 '|' top.3 '|' top.2 '|' top.1
  77. return
  78.  
  79. SHOWIT:
  80.  
  81. say CLS
  82. do x = 1 to sclength+2
  83.     say ''
  84. end
  85. say RESET CENTER("Late Night's Top Ten With David Letterman",78)
  86. do x = 1 to sclength+2
  87.     say ''
  88. end
  89. say RESET||CLS||RRED CENTER(SUBJECT,78,' ')
  90. say RESET
  91. x = 10
  92. anspos = 22
  93. if length(top.10) > 150 then anspos = 21
  94. if upper(ansi) = 'COLOR' then say esc"["anspos"H"
  95. do until x = 0
  96.     if x = 2 | x = 4 | x = 6 | x = 8 | x = 10 then ANY = RESET
  97.         else ANY = WHI
  98.     if x = 1 then ANY = YEL
  99.     pre = right(x,2,' ')||'. '
  100.     if length(top.x) < 75 then do
  101.         say CYA||pre||RESET||ANY top.x
  102.         if upper(ansi) ~= 'COLOR' then say '0d'x
  103.         call del
  104.     end
  105.     if length(top.x) >= 75 & length(top.x) <= 150 then do
  106.         p = pos(" ",top.x,75)
  107.         rtop = strip(left(top.x,p),'B',' ')
  108.         say CYA||pre||RESET||ANY rtop
  109.         ltop = strip(substr(top.x,p),'B',' ')
  110.         say left(" ",length(pre)," ")' 'ltop
  111.     end
  112.     if length(top.x) >  150 then do
  113.         anspos = anspos - 1
  114.         if upper(ansi) = 'COLOR' then say ''||anspos||'H'
  115.         p = pos(" ",top.x,75)
  116.         rtop = strip(left(top.x,p),'B',' ')
  117.         say CYA||pre||RESET||ANY rtop
  118.         ttop = substr(top.x,p)
  119.         p = pos(" ",ttop,75)
  120.         mtop = strip(left(ttop,p),'B',' ')
  121.         say left(" ",length(pre)," ")' 'mtop
  122.         ltop = strip(substr(ttop,p),'B',' ')
  123.         say left(" ",length(pre)," ")' 'ltop
  124.     end
  125.     do cx = 1 to 100
  126.         call del
  127.     end
  128.     x = x - 1
  129.     anspos = anspos - 2
  130.     if upper(ansi) = 'COLOR' then say esc'['||anspos||'H'
  131. end
  132. if upper(ansi) = 'COLOR' then say esc'[23H'
  133. call PressReturn
  134. return
  135.  
  136. DEL:
  137.  
  138. do zx = 1 to 15
  139. end
  140. return
  141.  
  142. VRnd: procedure     /*  Very Random v1.1  [c] 1990 Shane D. Killian  */
  143.    arg lo,hi        /*    Feel free to use this as long as these     */
  144.    n1 = time('E')   /* comments remain intact.  Works like random(). */
  145.    n2 = time('S')
  146.    parse var n1 n11 '.' n12
  147.    n1 = n11 || n12
  148.    if lo > hi then do
  149.       x = lo
  150.       lo = hi
  151.       hi = x
  152.    end
  153.    if hi ~= lo then do
  154.       d = hi - lo + 1
  155.       x = length(d)
  156.       n1 = right(n1,x)
  157.       n2 = right(n2,x)
  158.       p = d
  159.       if p > 999 then p = 999
  160.       r = n1 + n2 + random(0,p)
  161.       r = r // d + lo
  162.    end
  163.    else r = hi
  164. return r
  165.  
  166.  
  167.  
  168. /**********************************************/
  169. /*                                            */
  170. /*  HOTKEY2 by Santosh Bungay                 */
  171. /*                                            */
  172. /*   Format for HOTKEY:                       */
  173. /*                                            */
  174. /*   Question = '<question>'                  */
  175. /*   Answer   = ''           OR variable      */
  176. /*   MaxLen   = <maximum length of input>     */
  177. /*   call LINEIN                              */
  178. /*   <variable> = ANSWER                      */
  179. /*                                            */
  180. /*     See PRESSRETURN:                       */
  181. /*                                            */
  182. /**********************************************/
  183.  
  184.  
  185. LINEIN:
  186.  
  187. call writech(stdout,question)
  188. call writech(stdout,answer)
  189. alen = length(answer)
  190.  
  191. GETKEY:
  192.  
  193.     key = readch(stdin,1)
  194.     dkey = c2d(key)
  195.     if dkey = 155 then do
  196.         key = readch(stdin,1)
  197.         signal GETKEY
  198.     end
  199.     if (dkey = 13) | (dkey = 10) then do
  200.         say ''
  201.         RETURN
  202.     end
  203.     if (dkey = 8) & (alen = 0) then signal GETKEY
  204.     if dkey = 8 then do
  205.         alen = alen - 1
  206.         answer = left(answer,alen)
  207.         temp = key||' '||key
  208.         key = temp
  209.     end
  210.     if ((dkey < 32) | (dkey > 127)) & (dkey ~= 8) | (alen > maxlen) then signal GETKEY
  211.     if dkey ~= 8 then do
  212.         answer = answer || key
  213.         alen = alen + 1
  214.     end
  215.     call writech(stdout,key)
  216. signal GETKEY
  217.  
  218. PRESSRETURN:
  219.  
  220. question = RRED'[ ]'RESET
  221. answer = ''
  222. maxlen = 1
  223. call linein
  224. if answer = 'ENDCLI' then signal DIE
  225. return
  226.  
  227. DIE:
  228.  
  229. if upper(ansi) = "COLOR" then say RESET''esc'[A     '
  230. say RESET
  231.  
  232. BREAK_C:
  233. SYNTAX:
  234. IOERR:
  235.  
  236. call close(stdin)
  237. call close(stdout)
  238. call close(stderr)
  239.  
  240. exit
  241.  
  242.  
  243.